package cn.xd.core.ddd.db;

import cn.xd.core.response.ObjectResult;

public interface Repository<T, ID> {

    void attach(T aggregate);

    void detach(T aggregate);

    void detachById(ID id);

    ObjectResult<T> find(ID id);

    void remove(T aggregate);

    void save(T aggregate);

    /**
     * 判断是否直接保存，不按照id判断
     *
     * @param aggregate
     * @param isModify  true 表示更新操作  false 表示 保存
     */
    void save(T aggregate, Boolean isModify);
}
